home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr05
/
xnot12a.zip
/
DIRED.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-05-20
|
1KB
|
70 lines
#include "jam.h"
#include "def.h"
#include "keyname.h"
static BUFFER * rn_(_dirgetfile, (int f, int n));
/*ARGSUSED*/
dired(f, n)
int f, n;
{
char dirname[NFILEN];
BUFFER *bp;
dirname[0] = '\0';
if(eread("Dired: ", dirname, NFILEN, EFNEW | EFCR) == ABORT)
return ABORT;
if((bp = dired_(dirname)) == NULL)
return FALSE;
curbp = bp;
curbp->b_flag |= BFVIEW;
return showbuffer(bp, curwp, WFHARD | WFMODE);
}
/*ARGSUSED*/
d_findfile(f, n)
int f, n;
{
BUFFER *oldBuf = curbp;
BUFFER *bp = _dirgetfile(f, n);
if (bp && (oldBuf->b_flag & BFREVERT))
return (reverto(f, n));
return (bp ? TRUE : FALSE);
}
d_viewfile(f, n)
int f, n;
{
BUFFER *bp = _dirgetfile(f, n);
if (bp)
bp->b_flag |= BFVIEW;
return (bp ? TRUE : FALSE);
}
static BUFFER *_dirgetfile(f, n)
int f, n;
{
char fname[NFILEN];
register BUFFER *bp;
register int s;
EWINDOW *wp;
if((s = d_makename(curwp->w_dotp, fname)) == ABORT)
return (BUFFER *)0;
if ((bp = (s ? dired_(fname) : findbuffer(fname))) == NULL)
return (BUFFER *)0;
if (!(wp = popbuf(bp)))
return (BUFFER *)0;
curbp = bp;
curwp = wp;
if (bp->b_fname[0] == 0)
s = readin(fname);
return (bp);
}